Many electronic systems can be divided into two categories: processing and data. Data are stored in memory for access in order to be used in processing or interactions with other systems or users. Performance of an electronic system is often related to the performance of the memory incorporated into the system.
In electronic systems, the most common types of memory used are flash memory, dynamic random-access memory (DRAM), static random-access memory (SRAM), and magnetic hard disk drive (HDD), although there are numerous other types and variations. Flash memory is composed of special transistors having a floating gate that is insulated and can store a charge. A DRAM element is usually composed of a transistor coupled to a capacitor that is dynamically refreshed to maintain a charge level. An SRAM element is usually composed of a number of transistors coupled together in a configuration operable to selectively couple outputs to either ground (VSS) or a high voltage node (VDD). A magnetic HDD is composed of magnetic disks with polarized magnetic bits being read or written as the disks spin at a high speed. Generally, each memory element has two states that can be read from and written to in order to serve as a memory bit.
Usually, important characteristics of a memory system may include read and write speed, reliability, and power consumption, among others. In many instances, system timing and operation speed are a key specification and memory plays an important role in determining what timing and operation speed may be used. Further, manufacturing of various types of memory systems usually introduces some amount of variation in performance. Such variations may result in decreased memory performance and increased cost as the manufacturer or customer characterizes and/or improves the performance of the manufactured memory systems.